การอนุญาต SSH สำหรับการตรวจสอบรหัสผ่านด้วย Amazon Linux 2 ใน EC2
สวัสดีเพื่อนๆ ชาว AWS Service ทุกท่านด้วยครับ ผมป๊อปครับ
ในบทความนี้ผมได้เขียนอธิบายเกี่ยวกับการอนุญาต SSH สำหรับการตรวจสอบรหัสผ่านด้วย Amazon Linux 2 ใน EC2 ไว้ สามารถเรียนรู้ในบทความนี้ได้เลยครับ
สิ่งที่ต้องมี
ก่อนอื่นต้องทำการติดตั้ง EC2 Instance สามารถดูวิธีการทำได้ที่ลิงก์ด้านล่างนี้
- วิธีติดตั้ง Amazon Linux บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTy
※ชื่อ Key Pairs และ EC2 Instance ของบทความนี้คือtinnakorn-password-auth
เมื่อสร้าง EC2 Instance เสร็จแล้วจะได้หน้าตาแบบนี้
และเมื่อ Login เข้ามา Amazon Linux 2 ด้วย PuTTy ได้แล้วจะมีหน้าตาแบบนี้
ข้อกำหนดเบื้องต้น
ก่อนดำเนินการตามขั้นตอนในบทความนี้ ต้องทำการเปลี่ยนec2-user
ให้เป็นroot
ทุกครั้ง เพื่อที่จะสามารถจัดการระบบใน Server Amazon Linux 2 ได้
เรียกใช้คำสั่งนี้เพื่อเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์root
sudo su -
เรียกใช้คำสั่งนี้เพื่อ Update server ให้เป็นปัจจุบันเสมอ
yum update -y
การตั้งค่าอนุญาต User และ Password ใน SSH
ก่อนอื่นทำการขยายหน้าโปรแกรม PuTTy ให้ใหญ่ขึ้นตามต้องการ เพื่อให้ง่ายต่อการดูและตั้งค่า เมื่อพร้อมแล้วมาเริ่มการตั้งค่ากันเลย
เรียกใช้คำสั่งนี้เพื่อแก้ไขไฟล์sshd_config
vi /etc/ssh/sshd_config
เมื่อเข้ามาแล้วให้ค้นหา PasswordAuthentication ตามนี้
① พิมพ์/Password
+ Enter ลงไปได้เลย
② จากนั้นจะเจอPasswordAuthentication
เราจะทำการแก้ไขในส่วนนี้
เมื่อค้นหา PasswordAuthentication เจอแล้ว ให้แก้ไขตามนี้
① เปลี่ยนภาษาคีย์บอร์ด แล้วกดปุ่มi
ให้ขึ้น-- INSERT --
② เปลี่ยน PasswordAuthentication: ให้เป็นyes
กดปุ่มEsc
ให้-- INSERT --
หายไป แล้วพิมพ์:x
หรือ:wq
ลงไปเพื่อบันทึกการตั้งค่าได้เลย
เรียกใช้คำสั่งนี้เพื่อ restart sshd
systemctl restart sshd
การตั้งค่า User และ Password ที่จะใช้ Login Server Amazon Linux 2
เรียกใช้คำสั่งนี้เพื่อเพิ่ม User ที่ชื่อtest
(จะใช้ชื่ออะไรก็ได้)
useradd test
เรียกใช้คำสั่งนี้เพื่อตั้งค่า Password ให้กับ User:test
จากนั้นให้ใส่ New Password และ Retype new password ที่ต้องการใช้ Login เช่นcmth2022
(ในส่วนของรหัสจะไม่แสดงให้เห็น ให้พิมพ์ลงไปได้เลย)
เมื่อขึ้นpasswd: all authentication tokens updated successfully.
แล้ว การสร้าง Password นั้นเสร็จสมบูรณ์
passwd test
ทดสอบการ Login Server Amazon Linux 2 ด้วย User และ Password ที่ตั้งขึ้นเอง
คลิกขวาที่แถบด้านบนของโปรแกรม PuTTy แล้วเลือกNew Session...
เพื่อเปิดหน้าต่างโปรแกรมใหม่ขึ้นมา
มาที่Connection › Data
และลบ ec2-user ออกจาก Auto-login username
มาที่Connection › SSH › Auth
และลบ Path หรือเส้นทางที่เก็บไฟล์ Key pair ออกจาก Browse...
จากนั้นคลิกOpen
เพื่อ Login
ทีนี้เราจะได้ PuTTy ที่เป็น Terminal ใหม่เพิ่มขึ้นมา
ให้ใส่ User และ Password ลงไปได้เลย เช่น:
login as: test test@18.142.108.90's password: cmth2022 # ในส่วนของ Password จะไม่แสดงข้อความให้เห็น ให้พิมพ์ลงไปได้เลย
เมื่อเข้ามาแล้วจะได้หน้าตาแบบนี้ โดยใช้ชื่อ Usertest
ในการ login
ทีนี้เรามาลองเข้าใช้งานroot
กันดู โดยเรียกใช้คำสั่งด้านล่างนี้
จะเห็นว่าไม่สามารถเข้าไปยัง root ได้ พูดง่ายๆ คือไม่มีสิทธิ์ที่จะเข้าถึงroot
ได้นั่นเอง แต่ถ้าต้องการสิทธิ์เข้าถึง root สามารถทำได้ง่ายๆ ไปดูที่ขั้นตอนถัดไปได้เลยครับ
sudo su -
ตั้งค่าการเข้าถึงสิทธิ์ root ให้กับ User ที่สร้างขึ้นเอง
มาที่หน้าโปรแกรม PuTTy หน้าแรก หรือTerminal 1
ซึ่งได้ทำการ login เข้าไปยัง root ไว้ก่อนหน้านี้แล้ว(คำว่าTerminal
สามารถใช้เรียกแทนในส่วนนี้ได้)
จากนั้นเรียกใช้คำสั่งนี้เพื่อตั้งค่าsudo
visudo
เมื่อเข้ามาหน้า sudo แล้ว กดปุ่มi
ให้ขึ้น-- INSERT --
และกดปุ่ม↓
เลื่อนลงมาด้านล่างสุดจนเห็นคำว่า #includedir /etc/sudoers.d
ทำการเว้นบรรทัดมา 2 บรรทัดแล้วลบ#
ที่บรรทัดสุดท้ายออก
จากนั้น Copy Code ด้านล่างนี้ แล้วนำไปวางในไฟล์ sudo โดยการคลิกขวา เพื่ออนุญาตการเข้าถึง root ให้กับ Usertest
นั่นเอง (test
นี้คือ User)
เมื่อเสร็จแล้วให้บันทึกโดยการกดปุ่มEsc
ให้-- INSERT --
หายไป และพิมพ์:x
หรือ:wq
เพื่อทำการบันทึก (ก่อนบันทึกให้ดูภาพประกอบด้วยว่าเหมือนกันหรือไม่ ยกเว้นชื่อ Usertest
ที่ต้องเปลี่ยน)
test ALL=(ALL) NOPASSWD:ALL
เมื่อตั้งค่าเสร็จแล้วกลับมาที่Terminal 2
เรียกใช้คำสั่งนี้เพื่อลอง login โดยใช้สิทธิ์การเข้าถึงroot
อีกครั้ง
จะเห็นว่าสามารถเข้าถึงroot
โดยใช้ชื่อ User:test
ได้เหมือนกับ Terminal 1 แล้ว
ถ้าเราสามารถใช้ login โดยใช้สิทธิ์การเข้าถึงroot
ด้วยชื่อ User:test
ได้แล้ว เพียงเท่านี้การตั้งค่าทั้งหมดในบทความนี้ก็เสร็จสมบูรณ์
ข้อควรระวัง
โปรดใช้ความระมัดระวังกับ EC2 Instance ที่มีการตั้งค่านี้ เนื่องจากมีความเสี่ยงที่จะถูกโจมตีจาก Brute-force attack ซึ่งผู้ก่อการร้ายจะโจมตีด้วยวิธีการส่งรหัสผ่านหรือข้อความรหัสผ่านจำนวนมาก โดยหวังว่าจะคาดเดาได้อย่างถูกต้อง ดังนั้นต้องใช้วิธีการจำกัด IP Address ในการเข้าถึง Server เพื่อความปลอดภัยของคุณเอง
อ่านเพิ่มเติมได้ที่: Brute-force attack
สรุป
การ Login เข้าใช้งาน Server Amazon Linux 2 โดยการเข้าถึงสิทธิ์ root นั้น สามารถทำได้หลายวิธี ซึ่งในบทความนี้เป็นการสาธิตวิธีการ login เข้ามายัง Amazon Linux 2 โดยใช้ User กับ Password ที่เราสร้างขึ้นเอง รวมไปถึงตั้งค่า sudo ให้สามารถเข้าใช้งานโดยมีสิทธิ์การเข้าถึง root ได้อีกด้วย